# 顾名思义，可变参数就是传入的参数个数是可变的，可以是1个、2个到任意个，还可以是0个。
# 我们以数学题为例子，给定一组数字a，b，c……，请计算a*a + b*b + c*c + ……。

# 使用可变参数numbers（名字随意，但是传入的时候类型必须是列表或者元祖）
def calc(*numbers):
    """
    给定一组数字a，b，c……，请计算a*a + b*b + c*c + ……。
    :param numbers: 数字列表[a，b，c……]
    :return: a*a + b*b + c*c + ……
    """
    sum_calc = 0
    for num in numbers:
        sum_calc += num ** 2
    return sum_calc


# 可以传入任意个参数，包括0个
print(calc(1, 2, 4))

# 如果已经有一个列表或者元祖，则可以在列表名前面加一个’*‘号传给函数
list1 = [1, 2, 3]
print(calc(*list1))